/*
  学习目标：使用dispatch 和action, 修改state
  步骤：
     1. 通过store.dispatch触发一个action
     2. 通过reducer函数, 修改state
    注意:
    1. action默认是处理对象的, 是一个对象, 必须有type属性
    2. 不可变数据原则: 新值覆盖旧值
*/
import { legacy_createStore as createStore } from "redux";

const store = createStore(function (state = { count: 99 }, action) {
  console.log("action  ----->  ", action, state);

  if (action.type === "add") {
    // 不可变数据原则: 新值覆盖旧值
    return {
      count: state.count + 1,
    };
  }

  if (action.type === "des") {
    return {
      count: state.count - 1,
    };
  }
  return state;
});

store.dispatch({ type: "des" });
console.log("store.getState().count  ----->  ", store.getState().count);

// console.log("res  ----->  ", state);

store.dispatch({ type: "add" });
console.log("store.getState().count  ----->  ", store.getState().count);
